# 802.11be 架构革命:MLO(Multi-Link Operation)协议原理与实现全解 在 802.11be 之前,哪怕你的路由器是三频的(Tri-band),你的手机也只能连接其中一个频段。MLO 的出现改变了游戏规则,它允许设备把多个频段“捆绑”在一起使用,就像把多条单车道合并成了高速多车道。但 802.11be 的 MLO(多链路操作)绝非简单的“多频合并、多频连接”。 ![](media/640-1772416064032.webp) MLO 代表了 MAC 层架构的一次彻底重构。它打破了过去 20 多年 802.11 协议中“一个 MAC 对应一个 PHY”的紧耦合关系,引入了 MLD(Multi-Link Device)这一全新的逻辑实体。 本篇我们将从协议栈视角深入解读 MLO 的 参考模型、MAC 功能解耦 以及 复杂的地址体系。 ## MLO 的核心:参考模型与 MAC 层解耦 在 802.11be 以前,一个 Wi-Fi 接口(Interface)就是一个独立的 MAC 实体,拥有独立的 MAC 地址、独立的序列号(SN)控制和独立的加密密钥。 802.11be 引入了一个新的逻辑实体 MLD(Multi-Link Device),它拥有一个 MAC 服务接入点(MAC-SAP,MAC Service Access Point)连接到上层(LLC),但在底层拥有多个附属 STA(Affiliated STAs)。 同时为了实现管理多条链路,802.11be 对 MAC 层进行了逻辑分层:MLD 上层 MAC 子层(MLD Upper MAC Sublayer)和 MLD 下层 MAC 实体(MLD Lower MAC Entity)。 通用参考模型(The Generic Reference Model) ![](media/640-1772416122645.webp) - DS 接口:AP MLD 拥有 DSAF(Distribution System Access Function),负责将无线侧的数据桥接到有线侧(Distribution System,如以太网)。 - MAC-SAP(MAC Service Access Point):对于上层(LLC 层/操作系统)来说,整个 MLD 设备看起来就像一个普通的 Wi-Fi 设备。它只有一个 MAC 地址(MLD MAC Address),提供一个数据接口。这保证了对上层协议的透明性——操作系统不需要知道底层跑了多少条链路,也不需要管理复杂的链路切换。 - MLD Upper MAC Sublayer(上层 MAC):这是 MLO 的“大脑”。它负责所有与具体链路(Link)无关的通用功能,对上层屏蔽多链路的细节: - - 序列号管理(Sequence Number Assignment):无论数据包最终走 2.4GHz 还是 5/6GHz 发送,它们共享同一个序列号空间(SNS),确保在接收端能正确重组乱序的包。 - - 加密/解密(Encryption/Decryption):使用统一的成对密钥(PTK)对单播数据进行加密和解密。 - - 分片与重组(Fragmentation/Defragmentation):决定数据包走哪条链路(TTLM),以及在接收端将不同链路来的包合并。 - - - 流量调度(TID-to-Link Mapping,TTLM):决定哪个优先级的流量(TID)可以走哪些链路。 - - Block Ack 记分板:维护跨链路的确认状态。 - MLD Lower MAC Entity(下层 MAC):这是 MLO 的“四肢”,每个链路(Link 1, Link 2...)都有自己独立的下层 MAC,负责与物理层(PHY)直接交互: - - 信道接入(EDCA):在各自的频段上独立进行侦听和退避,比如争抢信道、退避(Backoff)。 - - 信标发送/接收:处理本链路的 Beacon 和 Probe Response。 - - 链路级重传:如果在当前链路发送失败,由下层 MAC 处理(或反馈给上层重选链路)。 - - 保护机制:RTS/CTS 握手。 ## 深入设备内部:AP MLD 与 Non-AP MLD 的架构差异 在 MLO 的世界里,设备不再是单一的射频节点,而是拥有多个“附属 STA(Affiliated STAs)”的逻辑实体。虽然 AP MLD(路由器端)和 Non-AP MLD(手机/终端端)都拥有统一的 MLD MAC 地址 和 MLD 上层 MAC(Upper MAC),但为了适应基础设施侧(AP)和终端侧(STA)不同的业务需求,它们的内部架构设计截然不同。 AP MLD 必须兼容非 MLO 设备(Legacy STAs),而 Non-AP MLD 通常只需要关注与 AP 的连接。 ### AP MLD 的架构(The AP MLD Structure) ![](media/640-1772416320996.webp) **图注**:AP MLD 内部架构,它保留了“Non-MLD upper MAC sublayer”以兼容旧设备 AP MLD 的架构非常复杂,它实际上是一个“混合体”,因为它既要作为一个整体(MLD)服务 802.11be 客户端,又要让每一个频段(Link)看起来像一个独立的传统 AP,以服务 802.11ax 或更早的设备。 AP MLD 具有双重上层 MAC: - MLD Upper MAC Sublayer(MLD 上层 MAC):负责处理 MLO 相关的业务,如统一的序列号分配(SN Assign)、MLD 级别的加密/解密、分片重组等。它处理的是 MLD 到 MLD 的流量。 - Non-MLD Upper MAC Sublayer(非 MLD 上层 MAC):这是 AP MLD 独有的。每一个附属 AP(Affiliated AP)都保留了一套独立的上层 MAC 功能,这意味着 Link 1 上的 AP 可以独立服务一个 802.11ax 用户,完全不经过 MLD层面的复杂处理。用于处理与非 MLO 设备(如 802.11ax 手机)的通信,以及处理该链路上的广播/组播流量。 AP MLD 的接收路径:MPDU 分发器 当 AP MLD 的某个附属 AP 收到一个数据帧(MPDU)时,它必须通过 MPDU Distribution(MPDU 分发) 逻辑来决定交给谁处理: - 如果是 MLD 客户端发的帧:交给 MLD 上层 MAC。这里会进行统一的去重(基于 MLD 级别的 PN/SN)和解密。 - 如果是传统客户端发的帧:交给该链路对应的 附属 AP 上层 MAC。这里进行链路级别的处理。 ### Non-AP MLD 的架构(The Non-AP MLD Structure) ![](media/640-1772416493505.webp) **图注**:终端侧 MLD 架构 Non-AP MLD(如 802.11be 手机)的设计重点在于省电和漫游。 - 单一上层 MAC:Non-AP MLD 通常只包含一个统一的 MLD Upper MAC Sublayer。它不需要为每一个链路维护独立的“非 MLO 上层逻辑”,因为它的目标只是聚合多个链路来传输数据。 - 下层实体:它拥有多个 MLD Lower MAC Entities(对应不同的芯片/射频通路),负责各链路的信道接入(EDCA)和控制帧交互,但数据最终都汇聚到统一的上层进行解密和重组。 - 单一认证实体:这意味着手机连热点时,只需要进行一次认证(4-way handshake),所有链路的密钥(PTK)就都生成了,不需要每个频段单独输密码或认证。 **Non-AP MLD 的接收路径:链路合并** Non-AP MLD 的处理更简单。来自不同链路(如 2.4GHz 和 5/6GHz)收到的数据帧,经过各自的下层 MAC 处理后,直接进入 Link Merging(链路合并) 模块,按先入先出(FIFO)的顺序提交给统一的上层 MAC 进行重组和提交给应用层。它不需要区分数据是来自“MLD AP”还是“传统 AP”,因为对它来说,对端就是一个逻辑实体。 ## MLO 的地址迷宫:MLD Address vs. Link Address 802.11be 中最让人头疼的部分之一就是 MAC 地址的使用。一个 MLD 设备拥有 1 个 MLD MAC 地址 和 N 个 Link MAC 地址(N=支持的链路数)。 ### 地址类型定义 - MLD MAC Address(逻辑大脑):代表整个设备,位于 MLD 上层 MAC 子层(MLD Upper MAC Sublayer)。 - - 定义:用于唯一标识整个多链路设备(Multi-Link Device,MLD)的 MAC 地址,用于 认证(Authentication)和 关联(Association)阶段,用于生成加密密钥。 - - 作用: - - - 对外身份:对上层协议(LLC/IP)呈现为单一接口,就像传统的 Wi-Fi 设备一样。 - - - 序列号管理:统一管理所有链路上的 SN(Sequence Number)和 PN(Packet Number),防止跨链路重放攻击。 - Link MAC Address(物理触手):代表具体频段上的射频实体,位于 MLD 下层 MAC 实体(MLD Lower MAC Entity)。 - - 定义:MLD 内部每一个 隶属 STA(Affiliated STA)拥有的独立 MAC 地址。 - - 规则:同一个 MLD 内的所有 Affiliated STA 必须拥有不同的 MAC 地址。 - - 作用: - - - 无线传输:在具体的无线信道(2.4G/5G/6G)上发送和接收无线帧。 - - - 空口寻址:充无线帧头中的 TA(Transmitter Address)和 RA(Receiver Address)必须是 Link MAC 地址。 形象比喻: - MLD Address 是“总公司”的名称(签合同、对外转账用它)。 - Link Address 是“分公司”或“办事员”的工牌号(具体跑腿、发快递用它)。 ### 协议中的地址转换规则 802.11be 制定了一套严格的规则来决定帧头里的地址填什么。 **控制平面的地址使用** 在建立连接和管理网络时,两种地址的使用非常讲究,极易混淆。 - 发现与扫描(Discovery):Beacon/Probe Response - - 帧头的 BSSID(Address 3)是发送该帧的 AP 的 Link Address。 - - 但是,帧体内的 Basic Multi-Link Element 会携带 AP MLD MAC Address,告知终端“我是属于哪个集团的”。 - 认证与关联(Setup) - - 帧头(Header):使用具体的 Link Address 作为 SA(Source)和 DA(Destination)。 - - 帧体(Body): - - - 认证帧、关联请求/响应帧中包含 Basic Multi-Link Element,该元素内部显式包含 MLD MAC Address。 - - - 安全密钥(PMK/PTK)的推导是基于 MLD MAC Address 计算的,而不是 Link Address。这确保了密钥在所有链路上通用。 **数据平面的地址映射** 当数据包(MSDU)从上层下来,或者从空气中接收上来,地址是如何转换的? - 发送方向(Tx) - - 上层输入:IP 层将数据包交给 MLD 上层 MAC,此时源地址是 MLD MAC。 - - 链路选择:MLD 根据 TIDs-to-Link Mapping(TTLM)机制决定走哪条链路(例如 Link 1)。 - - 封装(Encapsulation): - - - Address 1(RA):下一跳的 Link Address(例如 AP 在 Link 1 上的 BSSID)。 - - - Address 2(TA):发送者的 Link Address(即 non-AP STA 在 Link 1 上的 MAC)。 - - - Address 3(DA):最终目的地址。 - - - 注意:如果是 WPA3 加密,加密使用的 Key 是基于 MLD 地址协商的 PTK,但 Nonce 的构建会混入 Link Address 相关信息以确保唯一性。 - 接收方向(Rx) - - 链路接收:AP 的 Link 1 收到数据帧,检查 Address 1(RA)匹配自己的 Link Address。 - - 去重与解密:使用共享的 PN 空间(基于 MLD 级)进行重放检测和解密。 - - 合并(Merging):不同链路收到的数据包汇入同一个 MLD 上层队列。 - - 上报:提交给上层网络协议栈时,源地址通常被视为对端的 MLD MAC(这就需要接收端维护一张 Link MAC 到 MLD MAC 的映射表)。 特殊情况:组播/广播(Group Addressed)组播密钥(GTK)是 Per-Link(每链路独立)的。因为不同链路可能有不同的传统设备存在,所以广播帧必须用该链路特定的 GTK 加密,且源地址通常直接使用该链路的 BSSID。 总结:地址迷宫速查表 | 场景涉及对象 | 使用的地址(Address Usage) | | :---------------------------------- | :-------------------------------------------------- | | 密钥协商(4-way Handshake)EAPOL 帧 | 帧体/Key Derivation 使用 MLD MAC 帧头 使用 Link MAC | | 空中传输(Over-the-Air)MPDU 帧头 | TA/RA(Addr 1/2)必须是 Link MAC | | 序列号(SN/PN)计数器 | 基于 MLD MAC 统一维护 (单播) | | 省电模式(TIM/DTIM) | AID 是 AP MLD 分配给 Non-AP MLD 的,跨链路统一 | | 上层通信(IP Layer)MSDU | SA/DA 逻辑上对应 MLD MAC | **避坑指南**:在开发 802.11be 驱动或进行 Sniffer 抓包分析时,千万不要只看帧头的 Address 2 就认为是设备的唯一 ID。必须解析 Basic Multi-Link Element 获取背后的 MLD MAC Address,那才是设备的“真身”。同时,同一个设备在 Link 1 和 Link 2 上通过不同 MAC 地址发送的数据包,共享同一个 PN(Packet Number)序列号空间,这是判断丢包和重放的关键。 ## Link ID:链路的“身份证” 在 MLO 架构中,一个 AP MLD 可能包含多个工作在不同频段(如 2.4GHz, 5GHz, 6GHz)的附属 AP。为了在管理帧和控制流程中精准地指代某一个具体的射频链路,协议引入了 Link ID(0 ~ 14,这意味着一个 AP MLD 最多可以支持 15 个附属 AP,但是通常只有 2-3 个)。 - 唯一性:在任何给定的时间,同一个 AP MLD 内的任意两个附属 AP 不能拥有相同的 Link ID。 - 静态性:Link ID 由 AP MLD 独立分配给其附属 AP,一旦分配,只要 AP 不被移除,Link ID 在该附属 AP 建立的 BSS 生命周期内保持不变。即使 AP 切换了信道(比如从 5.2GHz 切到了 5.8GHz),Link ID 也不变。这使得非 AP MLD(如手机)在追踪 AP 时更加稳定。 ### Link ID 的应用场景 Link ID 就像是一条看不见的纽带,串联起了 MLO 的发现、连接、节能和安全等各个环节。 #### 网络发现(Discovery) 在扫描阶段,手机(Non-AP MLD)通过 Link ID 来识别“谁是谁”。 - 基本多链路元素(Basic Multi-Link Element):这是 MLO 的核心元素。在其中的 Per-STA Profile 子元素里,STA Control 字段包含 Link ID 子字段。这告诉接收端:“下面这些参数(如信道、SSID 等)是属于 Link ID = X 的那个 AP 的。” - 缩减邻居报告(RNR,Reduced Neighbor Report):AP 会在信标中携带 RNR 来通告同一 MLD 下的其他 AP。RNR 中的 MLD Parameters 子字段也包含 Link ID,帮助终端快速了解其他频段对应的是哪个逻辑端口。 #### 连接建立与协商(Setup) - 关联请求/响应:在 (Re)Association Request/Response 帧中,双方通过 Basic Multi-Link Element 中的 Link ID 来确认要建立哪些链路的连接。 - TID 映射(TID-To-Link Mapping,TTLM):当协商哪些业务数据(TID)走哪条路时,Link Mapping 字段使用 Link ID 来指代具体的链路。例如,“TID 0 映射到 Link ID 1 和 Link ID 2”。 #### 安全密钥分发(Security) 这是 Link ID 最“硬核”的用途之一。在 MLO 中,虽然单播密钥(PTK)是 MLD 级别的,但组播/广播密钥(GTK/IGTK/BIGTK)是 Per-Link(每链路独立)的。 - 密钥分发(KDE):在 4 次握手或组密钥握手时,AP MLD 会发送包含 Link ID 的专用 KDE(Key Data Encapsulation): - - MLO GTK KDE - - MLO IGTK KDE - - MLO BIGTK KDE 注意:保护组播管理帧(如 Beacon)使用的是 IGTK(Integrity GTK)或 BIGTK(Beacon IGTK),而非 GTK。GTK 仅用于保护 Data 帧。 - 作用:终端收到密钥包后,根据里面的 Link ID,将密钥安装到对应的射频硬件上,确保能解密对应频段的广播帧。 #### 节能与唤醒(Power Save) - TWT(目标唤醒时间):在 TWT 协商中,Link ID Bitmap 字段用于指示该唤醒协议适用于哪些链路。 - 流量指示(TIM):在 Multi-Link Traffic Indication 元素中,位图的索引对应 Link ID,指示哪个链路上有待接收的缓存数据。 ​ ## 操作模式:STR 与 NSTR 的物理限制 MLO 的理想状态是所有链路都能独立收发,但这取决于硬件能力。 ### STR(Simultaneous Transmit and Receive) - 原理:设备可以在 Link 1 上发送数据的同时,在 Link 2 上接收数据,互不干扰。 - 要求:通常要求两个频段间隔足够远(如 2.4G 和 5G,或 5G 低频和 5G 高频配合由滤波器隔离),防止发送端的强信号“震聋”自己的接收端。 - 优势:真正的并发,吞吐量最大化。 ### NSTR(Nonsimultaneous Transmit and Receive) - 原理:设备无法同时一发一收。如果 Link 1 正在发送,Link 2 必须闭嘴(不能接收也不能发送),否则会发生自干扰。 - 限制:常见于手机等空间受限设备(如 5G 和 6G 频段太近)。 - 同步传输:为了在 NSTR 限制下提升性能,MLO 引入了同步传输机制,尽量让两个链路的发送结束时间对齐(End Time Alignment),以便同时切换回接收状态。